import type { CartItem } from '../stores/types';
interface SharedWorkerGlobalScope extends WindowOrWorkerGlobalScope {
onconnect: ((e: MessageEvent) => void) | null;
}
let cartData: CartItem[] = [];
const ports: MessagePort[] = [];
(self as unknown as SharedWorkerGlobalScope).onconnect = (e: MessageEvent) => {
const port = e.ports[0];
ports.push(port);
port.postMessage(cartData);
port.onmessage = function (e) {
cartData = e.data;
ports.forEach(p => {
if (p !== port) {
p.postMessage(cartData);
}
});
};
port.start();
};